Systems like mobile telephone systems may comprise a variety of databases of different types, which databases may be queried by different applications, such as by core applications in a core network or by third party applications. This type of environment is thus also a federated environment.
In recent times, software applications and users are more concerned about efficiency of the databases with regard to latency/delay. Users of these software applications do not always prefer to explore the data model of the database system to write optimized queries. However, in order to write optimized queries, users have to understand the capabilities and pitfalls of the underlying data store of the database system that the application uses.
Each such database has a data-store like MySQL, Oracle etc. in its data tier. Restrictions are imposed on the queries that are applied, depending on what data-store it uses in its data tier, as each data store has its own limitations and characteristics. For example, consider a database that uses MySQL as its data-store. It imposes query restrictions like “User cannot modify a table and select from the same table in a sub-query”. Similarly, a system that uses Hbase as a data-store restricts joins in queries. Such query restrictions are imposed to ensure the effective usage of resources.
Apart from restrictions in constructing queries, other restrictions pertaining to data access are also imposed. For example some systems restrict a query from one user, say user A, to read/update data in a table created by another user, say user B. Such restrictions in queries protect privacy and integrity of the data.
In a federated database environment, multiple applications query multiple data-stores. In such an environment, it is hard to impose an exhaustive set of generic restrictions on queries that will optimize the performance in all data-stores.
Furthermore, in a federated database environment, there can be cases where an application might not have information about which data-store it is querying. In such cases, the problem of imposing query restrictions becomes more complex. More often a middleware takes care of data transfer from/to the application to/from the underlying data-store. Still the middleware need not have knowledge about the data-store of the database that the application uses. Without knowing which data-store is used, it is difficult to impose query restrictions.
Furthermore in such a federated system there is the risk of bottlenecks. Queries may have to wait unacceptable long times for their responses.
Furthermore, there is currently no way of handling queries in a federated system when there is a sudden outburst of queries.
There is thus a need for improvement with regard to some or all of the above-mentioned problems.